


#ifndef PF_DIALOGFACTORY_H
#define PF_DIALOGFACTORY_H
#include "lx_Export.h"
#include "pf_dialogfactoryinterface.h"
#include "pf_dialogfactoryadapter.h"
#include "pf_debug.h"


#define PF_DIALOGFACTORY PF_DialogFactory::instance()->getFactoryObject()

/**
 * Interface for objects that can create and show dialogs.
 */
class LX_EXPORT PF_DialogFactory {

private:
    PF_DialogFactory();

public:
    virtual ~PF_DialogFactory() {}

    static PF_DialogFactory* instance();

	void setFactoryObject(PF_DialogFactoryInterface* fo);
	PF_DialogFactoryInterface* getFactoryObject();

	void commandMessage(const PF_String& m);

private:
	PF_DialogFactoryInterface* factoryObject;
	PF_DialogFactoryAdapter factoryAdapter;
	static PF_DialogFactory* uniqueInstance;
};


#endif
